﻿/********************************************************************************
 * Developed by Phil Tyler (http://www.laidbackcoder.co.uk)
 * 
 * Cryptosolic is Licensed under the GNU Lesser General Public License (LGPL)
 * http://cryptosolic.codeplex.com/license
 * *****************************************************************************/
using System;
using NUnit.Framework;
using Cryptosolic.Security.Encryption.Symmetric;

namespace Cryptosolic.Security.Tests
{
    [TestFixture]
    public class SymmetricAes256Tests : SymmetricEncryptionTestsBase
    {
        [SetUp]
        public void Setup()
        {
            base.encryptionAlgorithm = new Aes256();
        }

        [Test]
        public void SymmetricAes256_EncryptData_OutputEncryptedDataDifferentFromInput()
        {
            base.assert_EncryptData_OutputEncryptedDataDifferentFromInput();
        }

        [Test]
        public void SymmetricAes256_EncryptData_OutputEncryptedDataRepeatable()
        {
            base.assert_EncryptData_OutputEncryptedDataRepeatable();
        }

        [Test]
        public void SymmetricAes256_EncryptData_OutputEncryptedDataDifferentWithTwoDifferentInputs()
        {
            base.assert_EncryptData_OutputEncryptedDataDifferentWithTwoDifferentInputs();
        }

        [Test]
        public void SymmetricAes256_DecryptData_SuccessfullyDecryptEncryptedData()
        {                      
            base.assert_DecryptData_SuccessfullyDecryptData();
        }
        
        [Test]
        public void SymmetricAes256_DecryptData_UnsuccessfullyDecryptDataWithTwoDifferentIVs()
        {                      
            base.assert_DecryptData_UnsuccessfullyDecryptDataWithTwoDifferentIVs();
        }
        
        [Test]
        public void SymmetricAes256_DecryptData_UnsuccessfullyDecryptDataWithTwoDifferentKeys()
        {                      
            base.assert_DecryptData_UnsuccessfullyDecryptDataWithTwoDifferentKeys();
        }
        
        [Test]
        public void SymmetricAes256_EncryptData_OutputEncryptedDataDifferentWhenUsingSaltwithKey()
        {
        	base.assert_EncryptData_OutputEncryptedDataDifferentWhenUsingSaltWithKey();
        }
    }
}
